Data that is written to or read from magnetic tape typically is supplied by or supplied to a host or host system that is operating at a different speed than is the magnetic tape data storage system.
Thus, the host and the magnetic tape data storage system, such as a magnetic tape drive, are rarely operating at identical speeds in a balanced environment. Instead, typically, either the buffer is full, meaning that the incoming data (data from the host to be written, or data read from the magnetic tape) to the buffer is limited by the speed that data is removed from the buffer and thus can then be overwritten; or the buffer is nearly empty, meaning that the outgoing data from the buffer (either host data being written to the media, or read data being supplied to the host) is limited by the speed that data is supplied to the buffer.
When the effective host data rate exceeds the native data rate of the magnetic tape data storage system on a write, or when it is less than the native data rate on a read, then the differences in speeds requires that the magnetic tape data storage system stop the magnetic tape to allow the slower speed operation to catch up. Additionally, a sequence of commands may result in stopping, and perhaps reversing, the magnetic tape. The effective host data rate is the host data rate after data compression, which is typically provided by the magnetic tape data storage system. Herein, the term “host data rate” should be taken to mean the effective host data rate if the data is compressed, or to mean that the host data is not compressible, or uncompressed if there is no compression engine in the magnetic tape data storage system.
An example of a command which typically requires that the tape be stopped and reversed is a “Space” command with a negative argument, which is sometimes referred to as “Space backwards”. In that case, the tape might be stopped, accelerated backwards, then re-accelerated forwards so that the target of the Space backwards command, which might be a short distance previous to the present position, can be read forward.
Another type of command which might cause the tape to be stopped is a synchronizing command. Any type of write command issued with the “Immediate” bit not set is non-Immediate, which means that the drive is not to reply with a command complete until after all of the data, up to and including the data to be written as part of that command, has been written to tape, and verified to be written properly. One instance of a synchronizing command is a “Write filemark” command with an argument of zero filemarks to be written, in which case the whole purpose of the command is to cause the magnetic tape data storage system to write all the data that is in its data buffer to tape, or “flushed”. In the case of a synchronizing command, followed by another write command, the magnetic tape data storage system must stop the tape, accelerate it backwards, stop the tape again, and then accelerate it forward sufficiently in front of the end of the previously written data so that the writing of the new data may begin immediately following the data written by the last synchronizing command. Repositioning the tape to allow writing to resume following the present position is referred to as a “reposition”, or sometimes as a “backhitch”.
Another case where a reposition is typically required is when a magnetic tape data storage system which is writing data to tape runs out of data in the buffer be written, which will happen when the data rate at which the magnetic tape data storage system is writing to tape is faster than the rate at which the host sends it data.
All of these situations may result in inefficiencies in operation.